<?php

class Usuario extends CI_Controller {

    public function __construct() {
        parent::__construct();
        permissao('usuario', 'visualizar', get_user(), true);
    }

    public function index() {
        autenticar();
        if (isset($_GET['usuario'])) {
            $data['usuario_id'] = $_GET["usuario"];

            $data['usuario'] = $this->db
                            ->where('usuarios_id', $_GET['usuario'])
                            ->get('usuarios')->row();




            $data['empresas'] = $this->db
                            ->where('pessoasusuarios_usuario', $data['usuario_id'])
                            ->get('pessoasusuarios')->result();
        }

        $data['pagina'] = 'usuario/add';
        $this->load->view('home/index_view', $data);
    }

    public function salvar() {
        if (isset($_POST['usuario_id'])) {
            $this->editar($_POST);
        } else {
            $this->inserir($_POST);
        }
    }

    public function inserir() {
        autenticar();

        $dados = array(
            'usuarios_username' => $this->input->post('usuario_username'),
            'usuarios_nome' => $this->input->post('usuario_nome'),
            'usuarios_email' => $this->input->post('usuario_email'),
            'usuarios_tipo' => 2,
            'usuarios_dataCadastro' => date("Y-m-d") 
        );


        if ($this->input->post('usuario_senha')) {
            $dados['usuarios_senha'] = sha1($this->input->post('usuario_senha'));
        }

        $this->db->insert('usuarios', $dados);
        $id_user = $this->db->insert_id();


        $empresas = $this->input->post('pessoas');

        foreach ($empresas as $empresa) {


            $dadospessoas = array(
                'pessoasusuarios_usuario' => $id_user,
                'pessoasusuarios_pessoa' => $empresa,
            );


            $this->db
                    ->insert('pessoasusuarios', $dadospessoas);
        }






        redirect(base_url('index.php/usuario?usuario=' . $id_user));
    }

    public function editar() {
        autenticar();
        error_reporting(0);
        $id_user = $this->input->post('usuario_id');


        $dados = array(
            'usuarios_nome' => $this->input->post('usuario_nome'),
            'usuarios_email' => $this->input->post('usuario_email')
        );

        if ($this->input->post('usuario_senha')) {
            $dados['usuarios_senha'] = sha1($this->input->post('usuario_senha'));
        }

        $this->db
                ->where('usuarios_id', $this->input->post('usuario_id'))
                ->update('usuarios', $dados);




        $empresasContrato = $this->db
                ->where(array('contratos_id' => get_contrato()->contratos_id))
                ->join('grupospessoas', 'grupospessoas_pessoa = pessoas_id')
                ->join('grupos', 'grupos_id = grupospessoas_grupo')
                ->join('contratos', 'grupos_idcontrato = contratos_id')
                ->select('pessoas_id')
                ->get('pessoas')
                ->result();


        $empresasDoContrato .= "(";
        for ($i = 0; $i <= count($empresasContrato); $i++) {
            $empresasDoContrato .= $empresasContrato[$i]->pessoas_id;
            if ($empresasContrato[$i + 1] != "") {
                $empresasDoContrato .= ",";
            }
        }
        $empresasDoContrato .= ")";




        $this->db
                ->where('pessoasusuarios_pessoa in ' . $empresasDoContrato)
                ->where('pessoasusuarios_usuario', $id_user)
                ->delete('pessoasusuarios');



        $empresas = $this->input->post('pessoas');

        foreach ($empresas as $empresa) {


            $dadospessoas = array(
                'pessoasusuarios_usuario' => $id_user,
                'pessoasusuarios_pessoa' => $empresa,
            );


            $this->db
                    ->insert('pessoasusuarios', $dadospessoas);
        }





        redirect(base_url('index.php/usuario?usuario=' . $this->input->post('usuario_id')));
    }

    public function excluir() {
        $this->db
                ->where('usuarios_id', $this->input->post('usuario_id'))
                ->delete('usuarios');
        redirect(base_url('index.php/usuario/'));
    }

    public function contrato() {
        autenticar();

        $data['contratos'] = $this->db
                        ->where(array('pessoasusuarios_usuario' => $_SESSION['admin']->usuarios_id))
                        ->join('pessoas', 'pessoasusuarios_pessoa = pessoas_id')
                        ->join('grupospessoas', 'grupospessoas_pessoa = pessoas_id')
                        ->join('grupos', 'grupospessoas_grupo = grupos_id')
                        ->join('contratos', 'grupos_idcontrato = contratos_id')
                        ->join('contratosistema', 'contratosistema_contrato = contratos_id')
                        ->join('sistemas', 'contratosistema_sistema = sistemas_id')
                        ->group_by('grupos_idcontrato')
                        ->select('grupospessoas.*, contratos.*, sistemas.*')
                        ->get('pessoasusuarios')->result();


        $data['pagina'] = 'usuario/contrato';
        $this->load->view('home/contrato_view', $data);
    }

    public function escolher_contrato() {
        $this->load->model("Contratos_Model");
        $objcontratos = new Contratos_Model();
        $contratos = $objcontratos->getDados($_GET['contrato']);

        $_SESSION['contrato'] = $contratos;

        redirect(base_url('index.php'));
    }

    public function consultar_todos() {

        $data['usuarios'] = $this->db->get('usuarios')->result();
        $data['pagina'] = 'usuario/usuario';
        $this->load->view('home/index_view', $data);
    }

    public function permissoes() {

        $data['usuarios'] = $this->db->get('usuarios')->result();
        $data['pagina'] = 'usuario/permissoes';
        $this->load->view('home/index_view', $data);
    }

    public function salvar_permissoes() {

        autenticar();
        $permissao_usuario = "";
        $permissoes = $this->input->post('permissoes');

        $id_user = $this->input->post('usuario_id');

        foreach ($permissoes as $permissao) {
            $permissao_usuario .= $permissao . ",";
        }

        $dados = array(
            'usuarios_permissoes' => $permissao_usuario,
        );



        $this->db
                ->where('usuarios_id', $id_user)
                ->update('usuarios', $dados);



        redirect(base_url('index.php/usuario?usuario=' . $id_user));
    }
    
    
    public function buscaUsername() {
		 $objusuarios = new Usuarios_Model(); 
                 
		 $usuarios_username = $_POST['usuarios_username']; 
		 $usuarios = $objusuarios->verificaUsuarioExiste($usuarios_username); 
                 
//                 var_dump($usuarios);exit;
                 
                 echo json_encode($usuarios->usuarios_id);
	}
    

    function sair() {
        autenticar();
        sair_user();
        autenticar();
    }

}
